﻿// -------------------------------------------------------------------------
//    @FileName         :    NFCityDynamicModule.h
//    @Author           :    Gao.Yi
//    @Date             :    2025-09-16
//    @Email			:    445267987@qq.com
//    @Module           :    NFCityDynamicModule
//    @Desc             :
//
// -------------------------------------------------------------------------

#pragma once

#include "NFLogicCommon/NFMMODynamicModule.h"

namespace proto_ff
{
    class Proto_CSReq;
}

class NFCitySession;
class NFCityDynamicModule : public NFMMODynamicModule
{
public:
    NFCityDynamicModule(NFIPluginManager* p);
    ~NFCityDynamicModule() override;
public:
    // 处理客户端消息的函数，此函数在接收到客户端消息时被调用
    // unLinkId 参数表示链接的唯一标识，用于识别不同的客户端连接
    // packet 参数包含客户端发送的数据，通常用于解析和处理消息内容
    // 返回值表示消息处理的结果，具体含义依赖于应用逻辑
    int OnHandleClientMessage(uint64_t unLinkId, NFDataPackage& packet) override;

    // 处理客户端请求的函数，此函数在接收到客户端的proto_ff::Proto_CSReq请求时被调用
    // pSession 参数表示与客户端的会话对象，可用于发送响应或获取会话信息
    // req 参数包含客户端发送的请求数据，通常用于解析和处理请求内容
    // 返回值表示请求处理的结果，具体含义依赖于应用逻辑
    virtual int OnHandleClientMessage(NFDataPackage& packet, NFCitySession* pSession, const proto_ff::Proto_CSReq& req);
};